/*数据库操作*/
const basics_db = require('../../dbhelper/basics_db');

/**
 * token校验 1.人物存在 2.时间未过期
 * @author jaosnZhang
 * @param {Object} ctx 响应主体文本
 * @param {Function} next 异步函数跳返
 * @return {Object} ctx.body 返回信息对象
 */
exports.tokenCheck = async(token, isSuper) => {
  /*参数声明*/
  var callBackdata = {};
  if(token) {
    try {
      /*参数声明*/
      let objId = token.split('jason')[0];
      let registerTime = token.split('jason')[1];
      /*查询数据*/
      let thisData = await basics_db.findOneByObjId('user', objId);
      /*数据存在校验*/
      if(!thisData._id) {
        callBackdata = {
          statusText: 'token信息不存在！',
          status: 'tokenError'
        }
        return callBackdata;
      }
      /*管理身份验证*/
      if(isSuper) {
        if(thisData.super != true) {
          callBackdata = {
            statusText: '您正在尝试进行一个权限外的操作！',
            status: 'tokenError'
          }
          return callBackdata;
        }
      }

      let newDate = new Date().getTime()
      if((newDate - registerTime) >= 1000 * 60 * 60 * 2) {
        callBackdata = {
          statusText: 'token已过期！',
          status: 'tokenError'
        }
        return callBackdata;
      } else {
        callBackdata = {
          statusText: 'token校验通过！',
          status: 'success'
        }
        return callBackdata;
      }

    } catch(e) {
      callBackdata = {
        statusText: 'token格式错误！',
        status: 'tokenError'
      }
      return callBackdata;
    }
  } else {
    callBackdata = {
      statusText: 'token数据不存在！',
      status: 'tokenError'
    }
    return callBackdata;
  }
}

/**
 * token校验 1.人物存在 2.时间未过期
 * @author jaosnZhang
 * @param {Object} param 响应主体文本
 * @param {Function} ctx 异步函数跳返
 * @return {Object} ctx.body 返回信息对象
 */
exports.isRequired = async(param, ctx) => {
  if(param){
    console.log(11111)
    return param;
  }else{
    console.log(00000)
    return ctx.body = {
      statusText: '缺少必要字段！',
      status: 'error'
    }
  }
  
}